package com.legendshop.openportal.sdk.model.response.v4;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 子订单响应
 *
 * @author EDaoren
 */
@Data
@ApiModel("子订单详情响应")
public class SubOrderDetailV4Response extends OrderDetailV4Response {

    private static final long serialVersionUID = -8563674083226470334L;

    /**
     * 订单编号
     */
    @ApiModelProperty("订单编号")
    private String subNumber;

    /**
     * 订单状态 1: 待确认 2：待发货（已确认） 3：待收货（已发货） 4：已完成（已收货） 5：已取消
     */
    @ApiModelProperty("订单状态")
    private Integer orderState;

    /**
     * 商品列表
     */
    @ApiModelProperty("商品列表")
    private List<OrderSku> skuList;

    /**
     * 买家信息
     */
    @ApiModelProperty("卖家信息 需要在queryExts字段携带 buyer 标识")
    private Buyer buyer;



    /**
     * 运费
     */
    @ApiModelProperty("运费")
    private BigDecimal freight;

    /**
     * 订单实付金额。
     */
    @ApiModelProperty("订单实付金额")
    private BigDecimal actualOrderPrice;


    /**
     * 订单应付金额
     */
    @ApiModelProperty("订单应付金额")
    private BigDecimal orderPrice;

    /**
     * 订单类型。1是父订单   2是子订单。
     * OrderDetailTypeEnum
     */
    @ApiModelProperty("订单类型。1是父订单  2是子订单。")
    private Integer type;

    /**
     * 订单创建时间。
     * 输出格式为“yyyy-MM-dd hh:mm:ss”
     */
    @ApiModelProperty("订单创建时间")
    private Date createTime;

    /**
     * 订单完成时间，即收货时间
     * 输出格式为“yyyy-MM-dd hh:mm:ss”
     * 未完成时，此参数返回null。
     */
    @ApiModelProperty("订单完成时间")
    private Date finishTime;


    /**
     * 订单付款时间
     */
    @ApiModelProperty("订单付款时间")
    private Date payDate;

    /**
     * 发货时间
     */
    @ApiModelProperty("发货时间")
    private Date dvyDate;

    /**
     * 付款类型列表
     * 需要在queryExts字段携带 paymentType 标识
     */
    @ApiModelProperty("付款类型列表")
    private List<PaymentType> paymentTypes;
}
